import { get, post, getWithRetry } from '../request'

// 题目相关 API
export default {
  /**
   * 获取考试题目
   * @param {string} subject - 科目类型 (k1, k4)
   * @param {string} vehicleType - 车型 (C1, C2, etc.)
   * @param {string} examType - 考试类型 (theory, practice)
   * @param {number} questionCount - 题目数量
   * @returns {Promise}
   */
  getExamQuestions(subject, vehicleType, examType = 'theory', questionCount = 100) {
    return getWithRetry(`/questions/exam/${subject}/${vehicleType}`, {
      examType,
      questionCount
    })
  },
  
  /**
   * 获取练习题目
   * @param {string} subject - 科目类型 (k1, k4)
   * @param {string} vehicleType - 车型 (C1, C2, etc.)
   * @param {number} skip - 跳过数量
   * @param {number} limit - 限制数量
   * @returns {Promise}
   */
  getPracticeQuestions(subject, vehicleType, skip = 0, limit = 100) {
    return get(`/questions/practice/${subject}/${vehicleType}`, {
      skip,
      limit
    })
  },
  
  /**
   * 获取顺序练习题目
   * @param {string} subject - 科目类型 (k1, k4)
   * @param {string} mode - 练习模式 (sequence)
   * @returns {Promise}
   */
  getSequenceQuestions(subject, mode = 'sequence') {
    return get(`/questions/sequence/${subject}`, { mode })
  },
  
  /**
   * 获取随机练习题目
   * @param {string} subject - 科目类型 (k1, k4)
   * @param {string} model - 车型 (C1, C2, etc.)
   * @param {number} count - 题目数量
   * @returns {Promise}
   */
  getRandomQuestions(subject, model, count = 100) {
    return get(`/questions/random/${subject}/${model}`, { count })
  },
  
  /**
   * 获取题目详情
   * @param {number} id - 题目ID
   * @returns {Promise}
   */
  getQuestionDetail(id) {
    return get(`/questions/${id}`)
  },
  
  /**
   * 检查答案
   * @param {number} questionId - 题目ID
   * @param {string} userAnswer - 用户答案
   * @returns {Promise}
   */
  checkAnswer(questionId, userAnswer) {
    return post(`/questions/${questionId}/check`, {
      question_id: questionId,
      user_answer: userAnswer
    })
  },
  
  /**
   * 获取理论考试题目
   * @param {Object} data - 请求数据
   * @param {string} data.subject - 考试科目
   * @param {string} data.vehicleType - 车辆类型
   * @param {number} data.questionCount - 题目数量
   * @returns {Promise}
   */
  getTheoryExam(data) {
    return post('/questions/theory-exam', data)
  },
  
  /**
   * 获取专项训练题目
   * @param {Object} data - 请求数据
   * @param {string} data.subject - 考试科目
   * @param {string} data.vehicleType - 车辆类型
   * @returns {Promise}
   */
  getSpecialTraining(data) {
    return post('/questions/special-training', data)
  },
  
  /**
   * 获取错题集
   * @param {string} subject - 科目类型 (k1, k4)
   * @param {string} vehicleType - 车型 (C1, C2, etc.)
   * @returns {Promise}
   */
  getWrongQuestions(subject, vehicleType) {
    return get('/questions/wrong-questions', {
      subject,
      vehicleType
    })
  },
  
  /**
   * 记录做题记录
   * @param {Object} record - 记录数据
   * @param {number} record.questionId - 题目ID
   * @param {string} record.userAnswer - 用户答案
   * @param {boolean} record.isCorrect - 是否正确
   * @param {string} record.subject - 科目类型
   * @param {string} record.vehicleType - 车型
   * @returns {Promise}
   */
  saveRecord(record) {
    return post('/questions/records', record)
  },
  
  /**
   * 获取做题统计
   * @param {string} subject - 科目类型
   * @param {string} vehicleType - 车型
   * @returns {Promise}
   */
  getStatistics(subject, vehicleType) {
    return get('/questions/statistics', {
      subject,
      vehicleType
    })
  }
} 